home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 16 / Mac Magazin and MacEasy Magazine CD - Issue 16.iso / Utilities / Creator Changer 2.5 / Code & Resource / Creator Changer.file.c < prev    next >
Text File  |  1995-10-20  |  3KB  |  99 lines

  1. /**********************************************************************
  2.  *    This file contains the functions which let the user determine 
  3.  *    which file to change the creator and/or file types.
  4.  **********************************************************************/
  5.  
  6. #include "Creator Changer.h"
  7. #include "Creator Changer.file.h"
  8. #include "GetFileIcon.h"
  9.  
  10.  
  11. /**********************************************************************
  12.  *    Function Old_File(), this function calls the file to have the 
  13.  *    creator and / or file type changed.
  14.  **********************************************************************/
  15.  
  16. Boolean Pick_File(FSSpec *the_file_spec, FInfo *file_info, short get_icon)
  17.     {
  18.     
  19.     StandardFileReply    reply;
  20.     SFTypeList            my_types;
  21.     
  22.     StandardGetFile(NIL_PTR, -1, my_types, &reply);
  23.     if(!reply.sfGood) return(FALSE);
  24.     else
  25.         {
  26.         *the_file_spec=reply.sfFile;
  27.         if(get_icon) GetFileIcon(the_file_spec, svAllAvailableData, &The_Icons);
  28.         FSpGetFInfo(the_file_spec, file_info);
  29.         return(TRUE);
  30.         }
  31.     
  32.     }
  33.  
  34.  
  35.  
  36.  
  37. /**********************************************************************
  38.  *    Function p_Str_Copy(), this function copies one pascal string to
  39.  *    another pascal string.
  40.  **********************************************************************/
  41.  
  42. void p_Str_Copy(StringPtr p1, StringPtr p2)
  43.     {
  44.     
  45.     register int len;
  46.     
  47.     len=*p2++=*p1++;
  48.     while(--len>=0) *p2++=*p1++;
  49.     
  50.     }
  51.  
  52.  
  53.  
  54. /**********************************************************************
  55.  *    Function Comp_The_String(), this function compares one pascal string to
  56.  *    another pascal string.
  57.  **********************************************************************/
  58.  
  59. Boolean Comp_The_String(StringPtr p1, StringPtr p2)
  60.     {
  61.     
  62.     register int    len;
  63.     
  64.     len=*p2++=*p1++;
  65.     while(--len>=0) if(*p2++!=*p1++) return(BAD);
  66.     
  67.     return(GOOD);
  68.     
  69.     }
  70.  
  71.  
  72.  
  73. /**********************************************************************
  74.  *    Function Force_Finder_Update(), this function forces the Finder
  75.  *    to update the window in which the file was changed in.
  76.  **********************************************************************/
  77.  
  78. void Force_Finder_Update(FSSpec *the_file_spec)
  79.     {
  80.     
  81.     OSErr            error;
  82.     CInfoPBRec        lCBlk;
  83.     
  84.     if(the_file_spec->parID!=1) lCBlk.dirInfo.ioNamePtr=0L;
  85.     lCBlk.dirInfo.ioVRefNum=the_file_spec->vRefNum;
  86.     lCBlk.dirInfo.ioDrDirID=the_file_spec->parID;
  87.     lCBlk.dirInfo.ioFDirIndex=0;
  88.     lCBlk.dirInfo.ioCompletion=0;
  89.  
  90.     error=PBGetCatInfoSync(&lCBlk);
  91.     if(!error)
  92.         {
  93.         GetDateTime(&lCBlk.dirInfo.ioDrMdDat);
  94.         lCBlk.dirInfo.ioDrDirID=the_file_spec->parID;
  95.         PBSetCatInfoSync(&lCBlk);
  96.         FlushVol(NIL_PTR, the_file_spec->vRefNum);
  97.         }
  98.     
  99.     }